package com.warmheart.builder.sys;

import com.warmheart.core.co.base.BaseCoBuilder;
import com.warmheart.core.co.oper.Co;
import com.warmheart.entity.sys.SysSequence;

/**
 * 
 * @ClassName: SysSequence
 * @Description: 序号实体CoBuilder类，对应表名称为tb_sys_sequence
 *               温馨提示：不要修改该实体CoBuilder类的任何字段
 * @author ZhangJianyang
 * @date 2025-06-16 09:37:02
 *
 */
public class SysSequenceCoBuilder extends BaseCoBuilder<SysSequence, SysSequenceCoBuilder> {

    private final SysSequence t;

    @Override
    protected SysSequenceCoBuilder self() {
        return this;
    }

    @Override
    public SysSequence core() {
        return this.t;
    }

    public SysSequenceCoBuilder(SysSequence sysSequence) {
        t = sysSequence;
    }

    /**
     * 序号类型
     */
    private Co<SysSequence, SysSequenceCoBuilder> seqType;

    /**
     * 前缀
     */
    private Co<SysSequence, SysSequenceCoBuilder> prefix;

    /**
     * 流水号长度
     */
    private Co<SysSequence, SysSequenceCoBuilder> serialLength;

    /**
     * 日期规则
     */
    private Co<SysSequence, SysSequenceCoBuilder> dateRule;

    /**
     * 流水号
     */
    private Co<SysSequence, SysSequenceCoBuilder> serialNumber;

    /**
     * 是否按日期更新
     */
    private Co<SysSequence, SysSequenceCoBuilder> isDateUpdate;

    public Co<SysSequence, SysSequenceCoBuilder> seqType() {
        if (this.seqType == null) {
            this.seqType = new Co<SysSequence, SysSequenceCoBuilder>(self(), "seq_type");
        }
        return this.seqType;
    }

    public Co<SysSequence, SysSequenceCoBuilder> prefix() {
        if (this.prefix == null) {
            this.prefix = new Co<SysSequence, SysSequenceCoBuilder>(self(), "prefix");
        }
        return this.prefix;
    }

    public Co<SysSequence, SysSequenceCoBuilder> serialLength() {
        if (this.serialLength == null) {
            this.serialLength = new Co<SysSequence, SysSequenceCoBuilder>(self(), "serial_length");
        }
        return this.serialLength;
    }

    public Co<SysSequence, SysSequenceCoBuilder> dateRule() {
        if (this.dateRule == null) {
            this.dateRule = new Co<SysSequence, SysSequenceCoBuilder>(self(), "date_rule");
        }
        return this.dateRule;
    }

    public Co<SysSequence, SysSequenceCoBuilder> serialNumber() {
        if (this.serialNumber == null) {
            this.serialNumber = new Co<SysSequence, SysSequenceCoBuilder>(self(), "serial_number");
        }
        return this.serialNumber;
    }

    public Co<SysSequence, SysSequenceCoBuilder> isDateUpdate() {
        if (this.isDateUpdate == null) {
            this.isDateUpdate = new Co<SysSequence, SysSequenceCoBuilder>(self(), "is_date_update");
        }
        return this.isDateUpdate;
    }
}